export const getImageFile = async (imageUrl: string): Promise<File | null> => {
  let response: Response | null = null;
  let blob: Blob | null = null;
  try {
    response = await fetch(imageUrl);
    blob = await response.blob();
    const fileName = imageUrl.split("/").pop() || "image.jpg";
    const file = new File([blob], fileName, { type: blob.type });
    // 显式释放 blob 引用（File 对象会持有 blob 的副本，原 blob 可以释放）
    blob = null;
    return file;
  } catch (error) {
    console.error(`Failed to fetch image from ${imageUrl}:`, error);
    return null;
  } finally {
    // 清理资源
    if (blob) {
      // 如果 blob 创建失败，确保清理
      blob = null;
    }
    // response 对象会自动被垃圾回收，但显式清理引用更安全
    response = null;
  }
};
